In an image processing system, complex algorithms are often implemented in a hardware image processor to accelerate image production. Data buffers are sometimes used to improve the performance of such processors. Unfortunately it is expensive to have a number of data buffers each dedicated to a particular image operation. Hence there is a general need to minimize the amount of data buffers required to be utilized in an image processor architecture, especially one that carries out many different types of operations.